public class Gun {

	int bulletsPerSecond;

	long ticksPerBullet;

	long lastFiringTime;

	double muzzleVelocity;

	double pixelsPerTick;

	double staticBulletRecoil;

	double dynamicBulletRecoil;

	double staticRecoilRecovery;

	double dynamicRecoilRecovery;

	double movementRecoil;

	double recoil;

	public Gun() {
		this(10, 50.0, 2.0, 1.02, 0.3, 0.91, 2.0);
	}

	public Gun(int bulletsPerSecond, double muzzleVelocity,
			double staticBulletRecoil, double dynamicBulletRecoil,
			double staticRecoilRecovery, double dynamicRecoilRecovery,
			double movementRecoil) {

		super();

		this.bulletsPerSecond = bulletsPerSecond;
		this.ticksPerBullet = 1000 / bulletsPerSecond;

		this.muzzleVelocity = muzzleVelocity;
		this.pixelsPerTick = muzzleVelocity / bulletsPerSecond;

		this.staticBulletRecoil = staticBulletRecoil * this.bulletsPerSecond;
		this.dynamicBulletRecoil = Math
				.pow(dynamicBulletRecoil, this.bulletsPerSecond);

		this.staticRecoilRecovery = staticRecoilRecovery;
		this.dynamicRecoilRecovery = dynamicRecoilRecovery;

		this.movementRecoil = movementRecoil;

	}

}
